[pascal]有一只老兔子,每个月生小兔子,然后……

来源:百度知道 编辑:UC知道 时间:2024/06/01 09:18:06
有一只老兔子,每个月生2只小兔子,然后小兔子长三个月后,再生2只小兔子,请问10月后有多少兔子?请用pascal语言编程编出共有多少兔子?
比如说老兔子第一个月生了小兔子,那么这只兔子第四个月时就可以生小兔子
同志们哪,我求的是程序,不是思路!!!!!!

.Fibonacci序列

除第一、第二项外每一项是它前两项的和;

若首项为f0为0,则序列为0,1,1,2,3,5,8...递推关系为(n>=2)fn=fn-1+fn-2

前n项的和Sn=f0+f1+f2+...+fn=fn+2-1

例9:以下是Fibonacci的示例:

1.楼梯有n阶台阶,上楼可以一步上1阶,也可以一步上2阶,编一程序计算共有多少种不同的走法?

2.有一对雌雄兔,每两个月就繁殖雌雄各一对兔子.问n个月后共有多少对兔子?

3.有n*2的一个长方形方格,用一个1*2的骨牌铺满方格。求铺法总数?
那我就再给你程序好了:
program lk;
var
a,b,c:longint;
i:longing;
begin
a:=5;
b:=7;
for i:=5 to 10 do
begin
c:=a+b;
a:=b;
b:=c;
end;
writeln(c);
end.

小兔子三个月后是不是老兔子了?

老天爷!偶都有半年没碰那玩意儿了啊!应该是数组+条件循环吧?应该还要用到循环嵌套?
哦妈咪啊,你自己好好研究下吧啊。。。我也要回去温书了。。。我这个翘课的懒银啊。。。。
MS偶还做过这题咧。。。。要是找到原题就打给你咯。。。。。

program tutu;
var tu,a,b,c,n:integer;
begin a:=1;
for n:=1to 10 do
begin
if n>=3 then
begin
a:=tu; b:=a*2; tu:=a+b; end;
else begin b:=a*2; tu:=a+b; c1:=b end;
end.